package com.iris.live.services.data.models;

import com.fasterxml.jackson.annotation.JsonProperty;

import javax.persistence.*;
import java.sql.Timestamp;
import java.util.Date;

/**
 * Created by xin on 2016/7/11.
 */
@SuppressWarnings("JpaDataSourceORMInspection")
@Entity
@Table(name = "LSH调查问卷", schema = "sg_lsh", catalog = "")
public class Lsh调查问卷Model {
    private Integer 问卷编号;
    private Integer 问卷题号;
    private String 题目分类;
    private String 题目;
    private String 题型;
    private Date 创建日期;
    private String 许可;
    private Timestamp 更新时间;

    @Id
    @Column(name = "问卷编号")
    @JsonProperty("问卷编号")
    public Integer get问卷编号() {
        return 问卷编号;
    }

    public void set问卷编号(Integer 问卷编号) {
        this.问卷编号 = 问卷编号;
    }

    @Basic
    @Column(name = "问卷题号")
    @JsonProperty("问卷题号")
    public Integer get问卷题号() {
        return 问卷题号;
    }

    public void set问卷题号(Integer 问卷题号) {
        this.问卷题号 = 问卷题号;
    }

    @Basic
    @Column(name = "题目分类")
    @JsonProperty("题目分类")
    public String get题目分类() {
        return 题目分类;
    }

    public void set题目分类(String 题目分类) {
        this.题目分类 = 题目分类;
    }

    @Basic
    @Column(name = "题目")
    @JsonProperty("题目")
    public String get题目() {
        return 题目;
    }

    public void set题目(String 题目) {
        this.题目 = 题目;
    }

    @Basic
    @Column(name = "题型")
    @JsonProperty("题型")
    public String get题型() {
        return 题型;
    }

    public void set题型(String 题型) {
        this.题型 = 题型;
    }

    @Basic
    @Column(name = "创建日期")
    @JsonProperty("创建日期")
    public Date get创建日期() {
        return 创建日期;
    }

    public void set创建日期(Date 创建日期) {
        this.创建日期 = 创建日期;
    }

    @Basic
    @Column(name = "许可")
    @JsonProperty("许可")
    public String get许可() {
        return 许可;
    }

    public void set许可(String 许可) {
        this.许可 = 许可;
    }

    @Basic
    @Column(name = "更新时间")
    @JsonProperty("更新时间")
    public Timestamp get更新时间() {
        return 更新时间;
    }

    public void set更新时间(Timestamp 更新时间) {
        this.更新时间 = 更新时间;
    }

    @PrePersist
    @PreUpdate
    public void onPreUpdate() {
        this.set更新时间(new Timestamp(System.currentTimeMillis()));
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;

        Lsh调查问卷Model that = (Lsh调查问卷Model) o;

        if (问卷编号 != null ? !问卷编号.equals(that.问卷编号) : that.问卷编号 != null) return false;
        if (问卷题号 != null ? !问卷题号.equals(that.问卷题号) : that.问卷题号 != null) return false;
        if (题目分类 != null ? !题目分类.equals(that.题目分类) : that.题目分类 != null) return false;
        if (题目 != null ? !题目.equals(that.题目) : that.题目 != null) return false;
        if (题型 != null ? !题型.equals(that.题型) : that.题型 != null) return false;
        if (创建日期 != null ? !创建日期.equals(that.创建日期) : that.创建日期 != null) return false;
        if (许可 != null ? !许可.equals(that.许可) : that.许可 != null) return false;
        if (更新时间 != null ? !更新时间.equals(that.更新时间) : that.更新时间 != null) return false;

        return true;
    }

    @Override
    public int hashCode() {
        int result = (问卷编号 != null ? 问卷编号.hashCode() : 0);
        result = 31 * result + (问卷题号 != null ? 问卷题号.hashCode() : 0);
        result = 31 * result + (题目分类 != null ? 题目分类.hashCode() : 0);
        result = 31 * result + (题目 != null ? 题目.hashCode() : 0);
        result = 31 * result + (题型 != null ? 题型.hashCode() : 0);
        result = 31 * result + (创建日期 != null ? 创建日期.hashCode() : 0);
        result = 31 * result + (许可 != null ? 许可.hashCode() : 0);
        result = 31 * result + (更新时间 != null ? 更新时间.hashCode() : 0);
        return result;
    }
}
